package br.com.speedprevweb.bean;

import br.com.speedprevweb.dao.OrgaoLotacaoDao;
import br.com.speedprevweb.dao.impl.OrgaoLotacaoDaoImpl;
import br.com.speedprevweb.model.OrgaoLotacao;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "orgaoLotacaoBean")
@SessionScoped
public class OrgaoLotacaoBean implements Serializable{

  private OrgaoLotacao orgaoLotacao = new OrgaoLotacao();
  private List<OrgaoLotacao> orgaosLotacao = new ArrayList();

  public OrgaoLotacaoBean() {
    orgaosLotacao = new OrgaoLotacaoDaoImpl().listarTodos();
    orgaoLotacao = new OrgaoLotacao();
  }
  
  public OrgaoLotacao getOrgaoLotacao() {
    return orgaoLotacao;
  }
  
  public void setOrgaoLotacao(OrgaoLotacao orgaoLotacao) {
    this.orgaoLotacao = orgaoLotacao;
  }
  
  public List<OrgaoLotacao> getOrgaosLotacao() {
    return orgaosLotacao;
  }

  public void setOrgaosLotacao(List<OrgaoLotacao> orgaosLotacao) {
    this.orgaosLotacao = orgaosLotacao;
  }
  
  public String descricaoOrgaoLotacao() {
    return this.orgaoLotacao.getNmFantasia();
  }

  public String incluirOrgaoLotacao() {
    orgaoLotacao = new OrgaoLotacao();
    return "OrgaoLotacaoDetalhe";
  }

  public String preparaAlterarOrgaoLotacao() {
    return "OrgaoLotacaoDetalhe";
  }

  public String excluirOrgaoLotacao() {
    OrgaoLotacaoDao ogLotacaoDao = new OrgaoLotacaoDaoImpl();
    ogLotacaoDao.excluir(orgaoLotacao);
    orgaosLotacao = new OrgaoLotacaoDaoImpl().listarTodos();
    orgaoLotacao = new OrgaoLotacao();
    return "/cadastros/OrgaoLotacao";
  }
  
  public String salvar() {
    if (orgaoLotacao.getIdOrgaoLotacao() == 0) {
      incluir();
    } else {
      alterar();
    }
    return "/cadastros/OrgaoLotacao";
  }
  
  public void incluir() {
    OrgaoLotacaoDao orgLotacaoDao = new OrgaoLotacaoDaoImpl();
    orgLotacaoDao.salvar(this.orgaoLotacao);
    orgaosLotacao = new OrgaoLotacaoDaoImpl().listarTodos();
    orgaoLotacao = new OrgaoLotacao();
  }

  public void alterar() {
    OrgaoLotacaoDao ogLotacaoDao = new OrgaoLotacaoDaoImpl();
    ogLotacaoDao.alterar(orgaoLotacao);
  }

  public String cancelar() {
    return "/cadastros/OrgaoLotacao";
  }

  private void atualizarDataTable() {
    orgaosLotacao = new OrgaoLotacaoDaoImpl().listarTodos();
    orgaoLotacao = new OrgaoLotacao();
  }

  public int totalRegistros() {
    return orgaosLotacao.size();
  }
}